Messaging Layer Security (MLS) was recently published as RFC 9420 and allows applications to efficiently end-to-end encrypt messages among dynamic groups of clients. MLS provides state-of-the-art security guarantees such as forward secrecy and post-compromise security, but also introduces new security guarantees such as agreement on group membership and other group state. In contrast to existing (group) messaging protocols, MLS can provide fine-grained security guarantees efficiently even for very large groups.
We are co-authors and contributors to the MLS specification and have developed our Rust implementation OpenMLS alongside the specification.
In our workshop session, we would first like to briefly introduce MLS as a protocol and then introduce OpenMLS as an implementation. As main part of the session, we would like to showcase how one can build a simple messaging application (and server) using the OpenMLS API. Our aim is to make the session as interactive as possible, but we’ll likely need to provide some explanation about how the protocol works in the beginning.